package tp.tecnicasdisenio.service.impl;

import java.util.List;

import tp.tecnicasdisenio.dao.impl.jdbc.MateriaDao;
import tp.tecnicasdisenio.dao.impl.jdbc.TrabajoPracticoDao;
import tp.tecnicasdisenio.model.entity.Cuatrimestre;
import tp.tecnicasdisenio.model.entity.Materia;
import tp.tecnicasdisenio.model.entity.TrabajoPractico;
import tp.tecnicasdisenio.service.ServiceFacadeInterface;

public class ServiceFacade implements ServiceFacadeInterface{

	@Override
	public void alta(Materia materia) {
		MateriaDao.getInstance().insertar(materia);
	}

	@Override
	public List<Materia> filtrarPor(String codigo, String nombre, String emial) {
		return MateriaDao.getInstance().filtrarMaterias(codigo, nombre, emial);
	}

	//FIXME cambiar tipo de dato a nro de tp
	@Override
	public String getUltimoNroTpDeMateria(Materia materiaSeleccionada,Cuatrimestre cuatri) {
		TrabajoPractico ultimoTP= TrabajoPracticoDao.getInstance().obtenerUltimoTp(materiaSeleccionada, cuatri);
		if(ultimoTP == null){
			return "0";
		}
		Integer ultimoNro= Integer.valueOf(ultimoTP.getClaveTrabajoPractivo().getNumeroTp());
		return String.valueOf(ultimoNro + 1);
	}

	@Override
	public void alta(TrabajoPractico nuevoTrabajoPractico) {
		TrabajoPracticoDao.getInstance().insertar(nuevoTrabajoPractico);
	}

	@Override
	public void actualizar(Materia materia) {
		MateriaDao.getInstance().actualizar(materia);
	}

	@Override
	public List<TrabajoPractico> getTpsDe(Materia materia) {
		return TrabajoPracticoDao.getInstance().getTps(materia);
	}

}
